#pragma once
#include "protocol.hpp"

using namespace protocol_ns;

class CalCulate
{
public:
    CalCulate() {}

    Response Excute(const Request &req)
    {
        Response resp(0, 0);

        switch (req._oper)
        {
            case '+':
                resp._result = req._x + req._y;
                break;
            case '-':
                resp._result = req._x - req._y;
                break;
            case '*':
                resp._result = req._x * req._y;
                break;
            case '/':
            {
                if (req._y == 0)
                {
                    resp._code = 1;
                }
                else
                {
                    resp._result = req._x / req._y;
                }
                break;
            }
            case '%':
            {
                if (req._y == 0)
                {
                    resp._code = 2;
                }
                else
                {
                    resp._result = req._x % req._y;
                }
                break;
            }

            default:
            {
                resp._code = 3;
                break;
            }
        }
        return resp;
    }

    ~CalCulate() {}

private:
};